package com.xavier.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xavier.dto.DeptDTO;
import com.xavier.dto.DeptQueryDTO;
import com.xavier.vo.DeptPageVO;
import com.xavier.vo.DeptDetailVO;
import com.xavier.model.Dept;
import com.xavier.vo.QueryResultVO;

import java.util.List;

/**
 * 业务逻辑层-部门接口类
 *
 * @author Xavier
 * @version 1.0
 */
public interface IDeptService extends IService<Dept> {

    /**
     * 删除部门
     *
     * @param id
     * @return 是否成功
     */
    Boolean deleteDept(Long id);

    /**
     * 创建部门
     *
     * @param dto 部门入参
     * @return id
     */
    Long createDept(DeptDTO dto);

    /**
     * 更新部门
     *
     * @param dto 部门入参
     * @return 是否成功
     */
    Boolean updateDept(DeptDTO dto);

    /**
     * 根据ID获取部门信息
     *
     * @param id
     * @return 部门信息
     */
    DeptDetailVO getDept(Long id);

    /**
     * 根据ID获取部门信息
     *
     * @param id
     * @return 部门信息
     */
    Dept getBaseDept(Long id);

    /**
     * 获取部门树形信息
     */
    List<DeptPageVO> getList(DeptQueryDTO dto);


}
